Android中的su命令使用 | 您所在的位置:网站首页 › scaricati whatsapp gratis su android › Android中的su命令使用 |
Android开发工具系列目录 Android项目中Git工具的使用史上最全Git命令使用手冊史上最新最全的ADB命令行Android中的su命令使用Postman测试WebService接口2022 Android studio 最全必用插件 su命令 前言一、怎么使用su?二、代码异常情况三、Android ROOT 博客创建时间:2022.09.24 博客更新时间:2022.09.25以Android studio build=7.0.0,SDKVersion 31来分析讲解。如图文和网上其他资料不一致,可能是别的资料版本较低而已。 前言在日常开发Android程序中,我们可能碰到在程序中获取su权限,然后获取io流,执行shell命令。但是Android system/xbin 下的 su 是系统原生带的 su 程序,只给有 system 和 shell 用户使用,普通app 无法访问。 要使普通 app也能 su ,就要替换系统的 su 程序,有专门的,比如 SuperSU。或者将系统root,这样普通程序就能有权限使用。 一、怎么使用su?常见的使用代码如下,通过以下代码能让我们提权使用shell命令,做一些更高级的指令操作。比如我要给某个USB串口授权chmod 777 /dev/ttyACM // cmd="chmod 777 /dev/ttyACM" public static int execRootCmdSilent(String cmd) { int result = -1; DataOutputStream dos = null; try { Process p = Runtime.getRuntime().exec("su"); dos = new DataOutputStream(p.getOutputStream()); Log.i(TAG, cmd); dos.writeBytes(cmd + "\n"); dos.flush(); dos.writeBytes("exit\n"); dos.flush(); p.waitFor(); result = p.exitValue(); } catch (Exception e) { e.printStackTrace(); } finally { if (dos != null) { try { dos.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; }设备是否有root权限可以通过代码进行测试,此处提供检测设备是否root过的权限 /** * 判断机器Android是否已经root,即是否获取root权限 */ public static boolean haveRoot() { // 通过执行测试命令来检测 int ret = execRootCmdSilent("echo test"); if (ret != -1) { Log.i(TAG, "have root!"); return true; } else { Log.i(TAG, "not root!"); return false; } } 二、代码异常情况上面给出的代码是在Android系统被root过,或者手动授予了su操作命令,否则代码运行会出现两种异常情况(情况由本人亲测): java.io.IOException: Error running exec(). Command: [su] Working Directory: null Environment: null java.io.IOException: Cannot run program “su”: error=13, Permission denied Android系统的超级用户一般命名为root,root是系统中唯一的超级用户。root权限是指Linux的系统管理员权限,类似于Windows系统中的Administrator。 安卓root权限具有系统中所有的权限,可以访问和修改你手机中几乎所有的文件(Android系统文件及用户文件,不包括ROM),启动或停止一个进程,删除或增加用户,增加或者禁用硬件等等。 Root的优点: 可以备份系统。使用高级的程序,例如屏幕截图、root explorer等等。修改或是删除系统的内部程序。可以更改apk安装到data分区或是sd卡分区中,将程序安装到SD卡中手机开发人员,需要使用命令行控制设备Root风险: 如果在ROOT的过程中遇到问题,可能使手机变砖(无法开机)。如果不小心安装了恶意软件,可能使手机中的个人隐私信息暴露。容易被病毒软件、黑客伤害个别手机厂商会检测用户是否曾进行ROOT操作,这可能与保修有关。相关链接: Android项目中Git工具的使用史上最全Git命令使用手冊史上最新最全的ADB命令行Android中的su命令使用Postman测试WebService接口2022 Android studio 最全必用插件扩展链接: Material Design UI方案使用讲解Material TextInputLayout使用详解Room数据库,用过你才知道好ART与Dalvik、JVM之间的关系你懂了吗一篇文章弄懂Java多线程基础和Java内存模型博客书写不易,您的点赞收藏是我前进的动力,千万别忘记点赞、 收藏 ^ _ ^ ! |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |